//package Multijugador;
//
//import java.io.IOException;
//import java.io.Serializable;
//import java.net.*;
//import java.util.*;
//import android.app.*;
//import android.content.*;
//import android.graphics.*;
//import android.util.*;
//import android.view.*;
//import android.widget.*;
//
//
///**
// * Es la clase intermediaria entre los tableros, se encarga de toda la dinamica
// * del juego, controla el cambio de turnos y en funcion de esto muestra un
// * tablero u otro.
// * 
// * @author Georthik
// * @version x.x
// */
//public class MensajeroMulti extends View implements Serializable{
//	Activity act;
//	int duracion = Toast.LENGTH_SHORT;
//	mViewMulti tableroJugadorServer;
//	mViewMulti tableroJugadorClient;
//	boolean turnoJugadorServer;
//	boolean casillaPulsada = false;
//	boolean tocadoBarco = false;
//	private Context con;
//	private float scale;
//	private int ancho;
//	private int anchocua;
//	private Toast toast;
//	boolean fdraw = true;
//	boolean cambio = false;
//	Paint paint = new Paint();
//	Paint paint2 = new Paint();
//	Paint paintlinea1 = new Paint();
//	int barcoTocado;
//	boolean soyServidor;
//	InetAddress ipServidor;
//	int puerto;
//	private int alto;
//	static Socket scomServer=null;
//	static Socket scomClient=null;
//	static HiloMensajero hilo=null;
//	
//	public static void enviarSocketServer(Socket param){
//		scomServer=param;
//		crearHiloMensajero(param);
//		
//	}
//	public static void enviarSocketClient(Socket param){
//		scomClient=param;
//		crearHiloMensajero(param);
//	}
//	public static void crearHiloMensajero(Socket param){
//		hilo=new HiloMensajero(param);
//		hilo.start();
//	}
//	
//	public MensajeroMulti(Activity actividad,boolean psoyServidor, InetAddress pipServidor,int ppuerto, boolean turno) {
//		super(actividad.getApplicationContext());
//		act = actividad;
//		soyServidor=psoyServidor;
//		puerto=ppuerto;
//		turnoJugadorServer=turno;
//		if(soyServidor){
//			//crear socket servidor y socket de comunicacion
//			try {
//				ServerSocket ss=new ServerSocket(puerto);
//				Socket scom=ss.accept();
//				MensajeroMulti.enviarSocketServer(scom);
//				Log.i("info","enviado socket al servidor");
//			} catch (IOException e) {
//				Log.i("error",e.getMessage());
//			}
//
//		}else{
//			ipServidor=pipServidor;
//			boolean error=false;
//			do{
//				error=false;
//				try {
//					Socket scom=new Socket(ipServidor,puerto);
//					MensajeroMulti.enviarSocketClient(scom);
//					Log.i("info","enviado socket al cliente");
//				} catch (IOException e) {
//					Log.i("error",e.getMessage());
//					error=true;
//				}
//			}while(error);
//			
//		}
//		Paint whitePaint;
//		con = act.getApplicationContext();
//		scale = con.getResources().getDisplayMetrics().density;
//		whitePaint = new Paint();
//		whitePaint.setAntiAlias(true);
//		whitePaint.setColor(Color.WHITE);
//		whitePaint.setStyle(Paint.Style.STROKE);
//		whitePaint.setTextAlign(Paint.Align.LEFT);
//		whitePaint.setTextSize(scale * 15);
//	}
//
//	public void enviarTabJugadorServer(mViewMulti t) {
//		tableroJugadorServer = t;
//	}
//	public void enviarTabJugadorClient(mViewMulti t) {
//		tableroJugadorClient = t;
//	}
//
//	protected void onDraw(Canvas canvas) {
//		ancho = canvas.getWidth();
//		alto = canvas.getHeight();
//		anchocua = ancho / 10;
//		paint.setTextSize(20);
//		paint2.setTextSize(20);
//		paint2.setTypeface(Typeface.DEFAULT_BOLD);
//		paint2.setARGB(255, 255, 255, 255);
//		paintlinea1.setARGB(255, 255, 255, 255);
//		canvas.drawRGB(0, 0, 0);
//		
//		if(tableroJugadorClient==null || tableroJugadorServer==null){
//			//ponerfondochachi
//			canvas.drawText("Esperando oponente...", ancho/4, alto/2-10, paint2);
//		}else{
//			int filaact = 0;
//	
//			if (turnoJugadorServer) {
//				for (int f = 0; f < 10; f++) {
//					for (int c = 0; c < 10; c++) {
//						if (!tableroJugadorClient.matCasillas[f][c].isDestapado())
//							paint.setARGB(153, 204, 204, 204);
//						else if (tableroJugadorClient.matCasillas[f][c].getAgua()) {
//							paint.setARGB(250, 0, 0, 250);
//						} else {
//							paint.setARGB(255, 250, 0, 0);
//						}
//						canvas.drawRect(c * anchocua, filaact, c * anchocua
//								+ anchocua - 2, filaact + anchocua - 2, paint);
//						canvas.drawLine(c * anchocua, filaact, c * anchocua
//								+ anchocua, filaact, paintlinea1);
//						canvas.drawLine(c * anchocua + anchocua - 1, filaact, c
//								* anchocua + anchocua - 1, filaact + anchocua,
//								paintlinea1);
//					}
//					filaact = filaact + anchocua;
//				}
//				if(!soyServidor){
//					paint.setARGB(180, 235, 195, 30);
//					for (int i = 0; i < 5; i++) {
//						if (tableroJugadorClient.arrBarcos[i].getOrientacion()) {
//							canvas.drawRect(tableroJugadorClient.arrBarcos[i].getX(),tableroJugadorClient.arrBarcos[i].getY(),tableroJugadorClient.arrBarcos[i].getX() + anchocua* tableroJugadorClient.arrBarcos[i].getLongitud(),tableroJugadorClient.arrBarcos[i].getY() + anchocua, paint);
//						} else {
//							canvas.drawRect(tableroJugadorClient.arrBarcos[i].getX(), tableroJugadorClient.arrBarcos[i].getY(),tableroJugadorClient.arrBarcos[i].getX() + anchocua, tableroJugadorClient.arrBarcos[i].getY()+ anchocua * tableroJugadorClient.arrBarcos[i].getLongitud(),paint);
//						}
//					}
//				}
//			}else{
//				for (int f = 0; f < 10; f++) {
//					for (int c = 0; c < 10; c++) {
//						if (!tableroJugadorServer.matCasillas[f][c].isDestapado())
//							paint.setARGB(153, 204, 204, 204);
//						else if (tableroJugadorServer.matCasillas[f][c].getAgua()) {
//							paint.setARGB(250, 0, 0, 250);
//						} else {
//							paint.setARGB(255, 250, 0, 0);
//						}
//						canvas.drawRect(c * anchocua, filaact, c * anchocua
//								+ anchocua - 2, filaact + anchocua - 2, paint);
//						canvas.drawLine(c * anchocua, filaact, c * anchocua
//								+ anchocua, filaact, paintlinea1);
//						canvas.drawLine(c * anchocua + anchocua - 1, filaact, c
//								* anchocua + anchocua - 1, filaact + anchocua,
//								paintlinea1);
//					}
//					filaact = filaact + anchocua;
//				}
//				if(soyServidor){
//					paint.setARGB(180, 235, 195, 30);
//					for (int i = 0; i < 5; i++) {
//						if (tableroJugadorClient.arrBarcos[i].getOrientacion()) {
//							canvas.drawRect(tableroJugadorClient.arrBarcos[i].getX(),tableroJugadorClient.arrBarcos[i].getY(),tableroJugadorClient.arrBarcos[i].getX() + anchocua* tableroJugadorClient.arrBarcos[i].getLongitud(),tableroJugadorClient.arrBarcos[i].getY() + anchocua, paint);
//						} else {
//							canvas.drawRect(tableroJugadorClient.arrBarcos[i].getX(), tableroJugadorClient.arrBarcos[i].getY(),tableroJugadorClient.arrBarcos[i].getX() + anchocua, tableroJugadorClient.arrBarcos[i].getY()+ anchocua * tableroJugadorClient.arrBarcos[i].getLongitud(),paint);
//						}
//					}
//				}
//			}
//				
//			int barcosJugadorServerHundidos = 0;
//			int barcosJugadorClientHundidos = 0;
//			for (int z = 0; z < 5; z++) {
//				if (tableroJugadorServer.arrBarcos[z].estaHundido()) {
//					barcosJugadorServerHundidos++;
//				}
//				if (tableroJugadorClient.arrBarcos[z].estaHundido()) {
//					barcosJugadorClientHundidos++;
//				}
//			}
//			if (barcosJugadorServerHundidos >= 5) {
//				ganaElCliente();
//			}
//			if (barcosJugadorClientHundidos >= 5) {
//				ganaElServidor();
//			}
//		}
//	}
//
//	public boolean onTouchEvent(MotionEvent me) {
//		int eventaction = me.getAction();
//		int x = (int) me.getX();
//		int y = (int) me.getY();
//		switch (eventaction) {
//		case MotionEvent.ACTION_DOWN:
//			if(soyServidor){
//				if (turnoJugadorServer) {
//					for (int i = 0; i < 10; i++) {
//						for (int j = 0; j < 10; j++) {
//							if (tableroJugadorClient.matCasillas[i][j].dentro(x, y)
//									&& !tableroJugadorClient.matCasillas[i][j]
//											.isDestapado()) {
//								tableroJugadorClient.matCasillas[i][j].destapar();
//								hilo.enviar("coor "+i+","+j);
//								switch (tableroJugadorClient.probarCoor(i, j)) {
//								case 0:
//									cambio = true;
//									tableroJugadorClient.matCasillas[i][j].setAgua(true);
//									break;
//								case 1:
//									break;
//								case 2:
//									toast = Toast.makeText(con, "HUNDIDO", duracion);
//									toast.show();
//									break;
//								}
//								i = 9;
//								j = 9;
//							}
//						}
//					}
//					invalidate();
//				}
//			}else{
//				if (!turnoJugadorServer) {
//					for (int i = 0; i < 10; i++) {
//						for (int j = 0; j < 10; j++) {
//							if (tableroJugadorServer.matCasillas[i][j].dentro(x, y)
//									&& !tableroJugadorServer.matCasillas[i][j]
//											.isDestapado()) {
//								tableroJugadorServer.matCasillas[i][j].destapar();
//								switch (tableroJugadorServer.probarCoor(i, j)) {
//								case 0:
//									cambio = true;
//									tableroJugadorServer.matCasillas[i][j].setAgua(true);
//									break;
//								case 1:
//									break;
//								case 2:
//									toast = Toast.makeText(con, "HUNDIDO", duracion);
//									toast.show();
//									break;
//								}
//								i = 9;
//								j = 9;
//							}
//						}
//					}
//					invalidate();
//				}
//			}
//			break;
//		case MotionEvent.ACTION_MOVE:
//			break;
//		case MotionEvent.ACTION_UP:
//			break;
//		}
//		return true;
//	}
//
//	public void ganaElServidor() {
//		if(soyServidor){
//			toast = Toast.makeText(con, "FELICIDADES, has ganado", duracion);
//			toast.show();
//			act.finish();
//		}else{
//			toast = Toast.makeText(con, "Tu openente ha ganado", duracion);
//			toast.show();
//			act.finish();
//		}
//	}
//
//	public void ganaElCliente() {
//		if(!soyServidor){
//			toast = Toast.makeText(con, "FELICIDADES, has ganado", duracion);
//			toast.show();
//			act.finish();
//		}else{
//			toast = Toast.makeText(con, "Tu openente ha ganado", duracion);
//			toast.show();
//			act.finish();
//		}
//	}
//}
//
////hay que tratar el caso de desconexion: cuando se cierre la actividad o se pierdan dos turnos.